import type { PixelPoint } from "../commonTypes";

/**
 * 渲染像素的函数，每个一个光线
 * @param px 
 * @param _width 
 * @param _height 
 */
export function renderPixelScene(px: PixelPoint, width: number, height: number) {
  // 解析颜色和透明度，并进行解构赋值
  [px.r, px.g, px.b, px.a] = [...color(px.x / width, px.y / height), 1]
    .map(px => {
      // 转换0-1的颜色到0-255范围内
      return Math.floor(px * 255.9)
    })
}

/**
 * 基于像素位置的渲染
 * @param _x 
 * @param _y 
 * @returns 
 */
function color(_x: number, _y: number) {
  // 将y轴转换为从低到高的数据
  const [x, y] = [_x, 1 - _y]
  // 返回颜色值
  return [x, y, 0.2]
}
